package cc.rengu.igas.cops.common.dao;

import cc.rengu.oltp.service.common.entity.UserOrderInfo;

/**
 * @Description 用户订单表操作接口
 * @Author panky
 * @date 2020/5/18
 **/
public interface CopsUserHisOrderInfoMapper {

    /**
     * 根据 机构号/源系统标识/渠道标识/渠道流水号查询
     *
     * @param instId    机构号
     * @param msgSrcId  源系统标识
     * @param channelId 渠道标识
     * @param traceNo   渠道流水号
     * @return 用户订单
     */
    UserOrderInfo selectUserOrderInfoByInstIdMsgSrcIdChannelIdTraceNo(String instId, String msgSrcId, String channelId, String traceNo) throws Exception;

    /**
     * 根据 机构号/系统流水号 查询用户订单
     *
     * @param instId   机构号
     * @param sysSeqNo 系统流水号
     * @return 用户订单
     */
    UserOrderInfo selectUserOrderInfoByInstIdSysSeqNo(String instId, String sysSeqNo) throws Exception;

    /**
     * 根据商户订单号查询用户订单信息
     *
     * @param instId         多法人标识
     * @param mchntOrderId   商户订单号
     * @param msgSrcId       源系统标识
     * @param transChannelId 渠道标识
     * @return 用户订单信息
     * @throws Exception 异常
     */
    UserOrderInfo selectUserOrderInfoBySecondKey(String instId, String mchntOrderId, String msgSrcId, String transChannelId) throws Exception;
}
